#ifndef GRAPHICS_IMAGE3D_H
#define GRAPHICS_IMAGE3D_H

#include <core/core.h>

namespace yam3d
{
namespace graphics
{


    class Image3D : public core::Object
    {
    public:
        Image3D();
        Image3D( int w, int h, int d );
        virtual ~Image3D();

        int width() const;
        int height() const;
        int depth() const;

        void setPixelColor( int x, int y, int z, int col );
        core::byte* getPixel( int x, int y, int z);

        Image3D* genMipMap3D();

    private:
        void createBuf( int w, int h, int d )
        {
                m_w = w;
                m_h = h;
                m_d = d;
                m_buf.resize( m_w*m_h*m_d*4 );
                memset(&m_buf[0], 0xffffffff, m_w*m_h*m_d*4 );
        }


        core::ByteVector m_buf;
        int m_w;
        int m_h;
        int m_d;

        Image3D(const Image3D&);
        Image3D& operator=(const Image3D&);
    };

}
}

#endif // GRAPHICS_IMAGE3D_H





